package com.softa.common.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.softa.common.entity.SysResource;
import com.softa.common.entity.SysRole;
import com.softa.common.sysconfig.support.DataTableRequest;

import java.util.List;
import java.util.Set;

/**
 * @author hasee
 */
public interface RoleService {


	String createRole(SysRole role);

	String updateRole(SysRole role);

    void deleteRole(Long roleId);

    SysRole findOne(Long roleId);

    SysRole findOne(String code);

    List<SysRole> findAll();

    /**
     * 根据角色编号得到角色标识符列表
     * @param roleIds
     * @return
     */
    Set<String> findRoles(String... roleIds);

    /**
     * 根据角色编号得到权限字符串列表
     * @param roleIds
     * @return
     */
    Set<String> findPermissions(String[] roleIds);

    Page<SysRole> queryRoleByParam(DataTableRequest request);

	Long queryRoleTotalByParam(DataTableRequest dataGrid);

	/**
     * 根据角色编号得到菜单列表
     * @param roleIds
     * @return
     */
	List<SysResource> findResourceList(String[] roleIds);

    Set<String> findAllRoles();
}
